It has become common for devices to receive multimedia content from a variety of different sources and via a variety of different network types. For instance, a television may receive multimedia content from one or more cable systems or satellite systems and also from terrestrial broadcast systems. More recent devices such as set-top boxes (STBs) and multimedia personal computers (PCs) are able to receive programming from cable systems, terrestrial broadcast systems, satellite systems, the Internet, etc.
A device receiving multimedia content typically includes a receiver driver implemented in software or firmware that may work in conjunction with corresponding hardware to “tune” to particular content (a particular channel, a particular file server, etc.). Various functions are carried out by the receiver driver in order to tune to a particular program depending on the nature of the network type. Examples of such functions include radio frequency (RF) tuning, demultiplexing, decrypting, etc.
The multimedia content that is received by a device can include video content, audio content, and data content. The video and audio content typically refer to conventional video and audio programming (e.g., television shows, radio broadcasts, movies, etc.). The data content typically refers to additional data that corresponds to the video and audio programming, such as sports player statistics, program sponsor information, etc. A current trend in multimedia content delivery is to include the data content in a format that current computers are familiar with, such as the Internet Protocol (IP) format.
The manner in which data content is transmitted to a device depends on the network type being used to transmit the multimedia content. For example, if the network type is a terrestrial analog broadcast then the data content can be included in the vertical blanking interval (VBI) of the broadcast. By way of another example, if the network type is a satellite digital broadcast, then the data content can be included in a separate channel or sub-channel of the broadcast.
One way in which multimedia content can be tuned to and rendered by a device is by use of the DirectShow® architecture, which is an architecture that controls and processes streams of multimedia data through one or more filters. Many current devices, on the other hand, process IP data in accordance with other specifications, such as the Network Device Interface Specification (NDIS). Additional information regarding the DirectShow® architecture and NDIS is available from Microsoft Corporation of Redmond, Wash.
In current devices, there is typically no ability for filters of the DirectShow® architecture and NDIS device drivers to communicate with one another. This prevents, for example, applications interfacing with the NDIS device drivers from communicating commands or requests to the filters of the DirectShow® architecture, and further hinders the ability of the DirectShow® architecture filters to communicate IP data to the NDIS device drivers.
The coupling together of a filter graph space and a network driver space described below addresses these and other disadvantages.